public class FizzBuzz {
    private int num;
    public FizzBuzz(int num){
        if (num < 1 || num > 100) {
            throw new IllegalArgumentException("无效输入");
        }
        this.num=num;
    }

    public String fizzBuzz() {
        StringBuilder result = new StringBuilder();

        // 若不满足任何条件，直接返回数字
        if (!isFizz() && !isBuzz() && !isWhizz()) {
            return result.append(num).toString();
        }

        // 按规则拼接结果
        if (isFizz()) result.append("Fizz");
        if (isBuzz()) result.append("Buzz");
        if (isWhizz()) result.append("Whizz");

        return result.toString();
    }
    private boolean isFizz() {
        // 假设Number是当前类的成员变量（表示输入的数字）
        return isDivisibleBy(3) || isContains("3");
    }

    // 判断是否满足Buzz条件：是5的倍数 或 包含数字5
    private boolean isBuzz() {
        return isDivisibleBy(5) || isContains("5");
    }

    private boolean isWhizz() {
        return isDivisibleBy(7) || isContains("7");
    }
    // 辅助方法：判断数字是否能被target整除
    private boolean isDivisibleBy(int target) {
        return num % target == 0;
    }

    // 辅助方法：判断数字的字符串形式是否包含指定字符
    private boolean isContains(String str) {
        return String.valueOf(num).contains(str);
    }
}
